//引入并创建createSlice
import {
    createSlice
} from '@reduxjs/toolkit'


//创建
const countSlice = createSlice({
    //首先命名在action中的type类型,每一个createSlice名字自动生成，前缀可以用来区分
    name: 'counter',

    //reducer提供的初始值
    initialState:{
        count : 0
    },

    //创建reduxcer
    reducers:{
         //reduce中处理函数接收两个参数 分别是当前reducer中上一次的值\本次dispacth的action对象
      //action对象中有一个payload就是用户调用action函数时传递的参数

      //不需要像之前那样得到新值再覆盖,可以直接修改reducer中的值,redux-toolkit中合成有一个immit的包帮我们处理了
        incrementAction(prev,action){
            console.log(prev.count,'prev.count', action,'countSlice中的prev,action');
            prev.count += action.payload
        },
        decrementAction(prev,action){
            prev.count -= action.payload
        }
    },
})

//通过createSilce创建的对象上有一个reducer属性，
//直接得到就是当前的reducer函数，可以暴露出去给store使用
export default countSlice.reducer

export const{
    incrementAction,
    decrementAction
} = countSlice.actions